#ifndef MACRO_H_INCLUDED
#define MACRO_H_INCLUDED

#include <algorithm>
#include <fstream>
#include <typeinfo>

//extern std::ofstream debug;

#define FOR_EACH(var,array) for (LocationVector::const_iterator var = array.begin(); var != array.end(); ++var)
#define IN_ARRAY(el,array) ( std::find(array.begin(), array.end(), el) != array.end())

#ifdef DEBUG
#define OUT_PRINT_FUN debug << '[' << __FUNCTION__ << ':' << __LINE__ << "]  " <<
#define OUT_PRINT debug << '[' << typeid( *this ).name() << ':' << __FUNCTION__ << ':' << __LINE__ << "] " <<
#else
#define OUT_PRINT_FUN
#define OUT_PRINT
#endif//DEBUG
#endif // MACRO_H_INCLUDED
